import Vue from 'vue'
import axios from 'axios'
import store from '@/store'
/**
 * 【指定 axios的 baseURL】
 * 如果手工指定 baseURL: '/jeecg-boot'
 * 则映射后端域名，通过 vue.config.js
 * @type {*|string}
 */
const apiBaseUrl = window._CONFIG['domianURL'] || '/jeecg-boot'
// 创建 axios 实例
const service = axios.create({
  baseURL: apiBaseUrl, // api base_url
  timeout: 30000, // 请求超时时间
  headers: {
    'jnxm': ''
  }
})

const err = (error) => {
  if (error.response) {
    const data = error.response.data
    console.log('------异常响应------', error.response.status)
    switch (error.response.status) {
      case 403:
        console.error('拒绝访问')
        break
      case 500:
        console.error('Token失效，请重新登录')
        break
      case 404:
        console.error('很抱歉，资源未找到!')
        break
      case 504:
        console.error('网络超时!')
        break
      case 401:
        console.error('未授权，请重新登录!')
        break
      default:
        console.error(data.message)
        break
    }
  }
  return Promise.reject(error)
}

// request interceptor
service.interceptors.request.use(config => {
  if (config.method === 'get') {
    if (config.url.indexOf('sys/dict/getDictItems') < 0) {
      config.params = Object.assign({ _t: Date.parse(new Date()) / 1000 }, config.params)
    }
  }
  return config
}, (error) => {
  return Promise.reject(error)
})

// response interceptor
service.interceptors.response.use((response) => {
  return response.data
}, err)

export {
  service as axios
}
